perm filename FOO[1,DBL] blob sn#062570 filedate 1973-09-20 generic text, type T, neo UTF8
(FILECREATED "18-SEP-73 17:31:29" FOO)


(DEFINEQ

(FOO1
  [LAMBDA (ARG)
    (** TAKES (A B C D) TO ((A B)
                            (A C)
                            (A D)
                            (B C)
                            (B D)
                            (C D)))
    (COND
      ((NULL ARG)
        NIL)
      ((NULL (CDR ARG))
        NIL)
      (T (APPEND (FOO1.AUX (CAR ARG)
                           (CDR ARG))
                 (FOO1 (CDR ARG])

(FOO1.AUX
  [LAMBDA (ARG2 ARG3)
    (COND
      ((NULL ARG3)
        NIL)
      (T (CONS (LIST ARG2 (CAR ARG3))
               (FOO1.AUX ARG2 (CDR ARG3])

(FOO2
  [LAMBDA (ARG1 ARG2)
    [** TAKES (A B C)
        ,
        ((D)
         (E F)
         NIL)
       TO (((A D)
            (A E F)
            (A))
           ((B D)
            (B E F)
            (B))
           ((C D)
            (C E F)
            (C]
    (COND
      ((NULL ARG1)
        NIL)
      (T (CONS (FOO2.AUX (CAR ARG1)
                         ARG2)
               (FOO2 (CDR ARG1)
                     ARG2])

(FOO2.AUX
  [LAMBDA (ARG3 ARG4)
    (COND
      ((NULL ARG4)
        NIL)
      (T (CONS (CONS ARG3 (CAR ARG4))
               (FOO2.AUX ARG3 (CDR ARG4])

(FOO3
  [LAMBDA (ARG1)
    (** TAKES (A B C D) TO ((A)
                            (B)
                            (C)
                            (D)
                            (B)
                            (C)
                            (D)
                            (C)
                            (D)
                            (D)))
    (COND
      ((NULL ARG1)
        NIL)
      (T (APPEND (FOO3.AUX ARG1)
                 (FOO3 (CDR ARG1])

(FOO3.AUX
  [LAMBDA (ARG2)
    (COND
      ((NULL ARG2)
        NIL)
      (T (CONS (LIST (CAR ARG2))
               (FOO3.AUX (CDR ARG2])

(FOO4
  [LAMBDA (ARG)
    (** TAKES (A B C D) TO ((X A Y)
                            (X B Y)
                            (X C Y)
                            (X D Y)))
    (COND
      ((NULL ARG)
        NIL)
      (T (CONS (LIST (QUOTE X)
                     (CAR ARG)
                     (QUOTE Y))
               (FOO4 (CDR ARG])

(FOO5
  [LAMBDA (ARG1 ARG2)
    (** TAKES Q , (A B C D)
       TO (A Q B Q C Q D Q))
    (COND
      ((NULL ARG2)
        NIL)
      (T (APPEND (LIST (CAR ARG2)
                       ARG1)
                 (FOO5 ARG1 (CDR ARG2])

(FOO6
  [LAMBDA (ARG)
    (** TAKES (A B C) TO (C B A))
    (COND
      ((NULL ARG)
        NIL)
      (T (APPEND (FOO6 (CDR ARG))
                 (LIST (CAR ARG])

(FOO7
  [LAMBDA (ARG)
    (** TAKES (A B C) TO (A A B B C C))
    (COND
      ((NULL ARG)
        NIL)
      (T (APPEND (LIST (CAR ARG)
                       (CAR ARG))
                 (FOO7 (CDR ARG])

(FOO8
  [LAMBDA (ARG)
    (** TAKES (A B C) TO ((A A)
                          (B B)
                          (C C)))
    (COND
      ((NULL ARG)
        NIL)
      (T (CONS (LIST (CAR ARG)
                     (CAR ARG))
               (FOO8 (CDR ARG])

(FOO9
  [LAMBDA (ARG1 ARG2)
    (** TAKES X , (A B C) TO (A (X)
                                A B (X)
                                B C (X)
                                C))
    (COND
      ((NULL ARG2)
        NIL)
      (T (APPEND (LIST (CAR ARG2)
                       (LIST ARG1)
                       (CAR ARG2))
                 (FOO9 ARG1 (CDR ARG2])

(FOO10
  [LAMBDA (ARG1)
    (** TAKES (A B C D)
       TO (D C B A D C B D C D))
    (COND
      ((NULL ARG1)
        NIL)
      (T (APPEND (FOO10.AUX ARG1)
                 (FOO10 (CDR ARG1])

(FOO10.AUX
  [LAMBDA (ARG2)
    (COND
      ((NULL ARG2)
        NIL)
      (T (APPEND (FOO10.AUX (CDR ARG2))
                 (LIST (CAR ARG2])

(FOO11
  [LAMBDA (ARG1)
    (** TAKES ((A B C)
         (D E))
       TO ((A D)
           (A E)
           (B D)
           (B E)
           (C D)
           (C E)))
    (COND
      ((NULL (CAR ARG1))
        NIL)
      (T (APPEND (FOO11.AUX (CAR (CAR ARG1))
                            (CAR (CDR ARG1)))
                 (FOO11 (CONS (CDR (CAR ARG1))
                              (CDR ARG1])

(FOO11.AUX
  [LAMBDA (ARG2 ARG3)
    (COND
      ((NULL ARG3)
        NIL)
      (T (CONS (LIST ARG2 (CAR ARG3))
               (FOO11.AUX ARG2 (CDR ARG3])

(FOO12
  [LAMBDA (ARG)
    (** TAKES (A B C D E F) TO (B A D C F E))
    (COND
      ((NULL ARG)
        NIL)
      ((NULL (CDR ARG))
        NIL)
      (T (APPEND (LIST (CAR (CDR ARG))
                       (CAR ARG))
                 (FOO12 (CDR (CDR ARG])

(FOO13
  [LAMBDA (ARG1 ARG2)
    (** TAKES (A B C)
        ,
        (D E F) TO ((A D)
                    (B E)
                    (C F)))
    (COND
      ((NULL ARG1)
        NIL)
      ((NULL ARG2)
        NIL)
      (T (CONS (LIST (CAR ARG1)
                     (CAR ARG2))
               (FOO13 (CDR ARG1)
                      (CDR ARG2])

(FOO14
  [LAMBDA (ARG)
    (** TAKES (A B C D E F) TO (A C E))
    (COND
      ((NULL ARG)
        NIL)
      ((NULL (CDR ARG))
        NIL)
      (T (CONS (CAR ARG)
               (FOO14 (CDR (CDR ARG])

(FOO15
  [LAMBDA (ARG)
    (** TAKES (A B C D E F) TO (E C A))
    (COND
      ((NULL ARG)
        NIL)
      ((NULL (CDR ARG))
        NIL)
      (T (APPEND (FOO15 (CDR (CDR ARG)))
                 (LIST (CAR ARG])

(FOO16
  [LAMBDA (ARG1 ARG2)
    (** TAKES (A B C)
        ,
        (D E)
       TO (A D B D C D A E B E C E))
    (COND
      ((NULL ARG2)
        NIL)
      (T (APPEND (FOO16.AUX ARG1 (CAR ARG2))
                 (FOO16 ARG1 (CDR ARG2])

(FOO16.AUX
  [LAMBDA (ARG3 ARG4)
    (COND
      ((NULL ARG3)
        NIL)
      (T (APPEND (LIST (CAR ARG3)
                       ARG4)
                 (FOO16.AUX (CDR ARG3)
                            ARG4])

(FOO17
  [LAMBDA (ARG1 ARG2)
    (** TAKES FN , (A B C D) TO ((APPLY FN A)
                                 (APPLY FN B)
                                 (APPLY FN C)
                                 (APPLY FN D)))
    (COND
      ((NULL ARG2)
        NIL)
      (T (CONS (LIST (QUOTE APPLY)
                     ARG1
                     (CAR ARG2))
               (FOO17 ARG1 (CDR ARG2])

(FOO18
  [LAMBDA (ARG1 ARG2)
    [** TAKES (F1 F2 F3)
        ,
        (D E F) TO ((Q F1 (D))
                    (Q F1 (E))
                    (Q F1 (F))
                    (Q F2 (D))
                    (Q F2 (E))
                    (Q F2 (F))
                    (Q F3 (D))
                    (Q F3 (E))
                    (Q F3 (F]
    (COND
      ((NULL ARG1)
        NIL)
      (T (APPEND (FOO18.AUX (CAR ARG1)
                            ARG2)
                 (FOO18 (CDR ARG1)
                        ARG2])

(FOO18.AUX
  [LAMBDA (ARG3 ARG4)
    (COND
      ((NULL ARG4)
        NIL)
      (T (CONS (LIST (QUOTE Q)
                     ARG3
                     (LIST (CAR ARG4)))
               (FOO18.AUX ARG3 (CDR ARG4])
)
  (LISPXPRINT (QUOTE FOOFNS)
              T)
  (RPAQQ FOOFNS
         (FOO1 FOO1.AUX FOO2 FOO2.AUX FOO3 FOO3.AUX FOO4 FOO5 FOO6 FOO7 
               FOO8 FOO9 FOO10 FOO10.AUX FOO11 FOO11.AUX FOO12 FOO13 
               FOO14 FOO15 FOO16 FOO16.AUX FOO17 FOO18 FOO18.AUX))
STOP